home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 August / Macworld (1999-08).dmg / From Macworld Readers / FREE Scripts / FREE Guides / FREE Guide Macintosh / FREE Guide • Macintosh 3.1.sea / FREE Guide • Macintosh 3.1.rsrc / TEXT_169.txt < prev    next >
Text File  |  1998-12-04  |  26KB  |  623 lines

  1.  
  2.  
  3.  
  4.  
  5. MIDI MESSAGES
  6.  
  7.  
  8.  
  9. ¬†              This chapter provides a short summary of MIDI messages. For full details you 
  10.                should refer to the MIDI Specification document from the Midi User Group. A 
  11.                particular device‚Äôs response to messages is given by its MIDI implementation chart.
  12.  
  13.  
  14.  
  15. Status Bytes and Data Bytes
  16. qqqqqqqqqqqqqqqqqqqqq
  17.  
  18.  
  19. Each MIDI message consists of a status byte followed by an appropriate number of data bytes. Values  between hex 80 to FF make up the 128 kinds of Status Byte.
  20.  
  21. Any value between 00 and 7F is a data byte. It contains information relating to a preceding status byte such as Note Number or Key Velocity.
  22.  
  23. The following table shows the various groups of MIDI messages, in which n represents the MIDI Channel Number.:-
  24.  
  25.  
  26.   Symbol        MIDI Message                       Hex Value         
  27.  
  28.              DATA BYTES                      00 to 7F
  29.  
  30.              CHANNEL STATUS BYTES            80 to EF
  31.  
  32.   NOF           Note Off                           8n
  33.   NON           Note On                            9n
  34.   PKP           Polyphonic Key Pressure            An
  35.   CCH           Control Change                     Bn
  36.   PCH           Program Change                     Cn
  37.   MCP           Monophonic Channel Pressure        Dn
  38.   PWL           Pitch Wheel                        En
  39.  
  40.              SYSTEM COMMON STATUS BYTES      FO to F7
  41.  
  42.   SOX           Start of Exclusive                 F0
  43.   MTC           Midi Time Code Quarter Frame       F1
  44.   SPP           Song Position Pointer              F2
  45.   SCH           Song Change                        F3
  46.   TRQ           Tuning Request                     F6
  47.   EOX           End of Exclusive                   F7
  48.  
  49.              REAL TIME STATUS BYTES          F8 to FF
  50.  
  51.   CLK           Timing Clock                       F8
  52.   STR           Sequence Start                     FA
  53.   CNT           Sequence Continue                  FB
  54.   STP           Sequence Stop                      FC
  55.   SNS           Active Sensing                  FE
  56.   RST           System Reset                    FF
  57.  
  58.  
  59. Hexadecimal notation is used throughout this chapter, except where single-digit value is shown without a preceding zero. For example, 03 is hex and 3 is decimal.
  60.  
  61. This chapter doesn‚Äôt Include General MIDI (GM) messages or those reserved for future use.
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85. Channel Messages
  86. qqqqqqqqqqqqqq
  87.  
  88.  
  89. These status bytes contain a channel number in the least significant nibble. Each voice can be assigned its own number ‚Äî it‚Äôs done automatically in General MIDI (GM) devices.
  90.  
  91. Although a simple instrument uses only one MIDI channel, multi-timbral devices can use as many channels as you can assign. The lowest numbered of these channels is the Basic Channel ‚Äî used for information that‚Äôs not associated with a particular voice.
  92.  
  93.  
  94. Channel Voice Messages
  95. wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
  96.  
  97.  
  98.                                                           
  99.  
  100.  
  101.                                                                Channel Voice Messages control an 
  102.                                                                instrument‚Äôs voices ‚Äî only devices  
  103.                                                                or voices assigned to a matching MIDI 
  104.                                                                channel will respond.
  105.  
  106.  
  107.  
  108.  
  109.  
  110. Running status reduces the number of bytes transmitted and can be crucial for musical timing! In the process a string of data bytes is allowed to follow a single status byte without any other status bytes being sent. For example, a Note On status byte can be followed by any number of ‚Äònote on‚Äô or ‚Äònote off‚Äô data bytes ‚Äî the latter are ‚Äònote on‚Äô bytes with the velocity (the pressure applied to a key) set to zero.
  111.  
  112. All voice messages, except Monophonic Channel Pressure, use two data bytes. The first specifies the note number and the second indicates the velocity.
  113.  
  114.  
  115. The Channel Voice messages are:-
  116.  
  117.  
  118. 80 to 8F: Note Off (NOF)                                                                                       
  119.  
  120. Indicates a key (note) has been released. The second data byte indicates the speed of release or off velocity, sometimes unused and set to hex 40. Messages are in the form:-
  121.  
  122. 8n, kk, vv
  123.  
  124.         kk = note number:
  125.                             34 = middle C (C3)
  126.         n = MIDI channel between 00 and 15, representing channels 1 to 16
  127.         vv = off velocity, usually using a logarithmic scale:
  128.                             00 = off
  129.                             01 = 'ppp'
  130.                             34 = 'mp'
  131.                             40 = mid position or no sensor
  132.                             46 = 'mf'
  133.                              FF = 'fff'
  134.  
  135.  
  136. 90 to 9F: Note On with running status (NON)                                                            
  137.  
  138. Indicates a key has been pressed. The second data byte is the applied pressure or on velocity.
  139.  
  140. 9n, kk, vv, kk, vv, - - -
  141.  
  142.         n, kk: as Note Off
  143.         vv = on velocity or Note Off:
  144.                             00 = note off (using Running Status)
  145.                             01 to FF = on velocity (see above)
  146.  
  147.  
  148. A0 to AF: Polyphonic Key Pressure or After Touch (PKP)                                               
  149.  
  150. Indicates the pressure applied to an individual key. This is rarely used ‚Äî see Monophonic Channel Pressure below.
  151.  
  152. An, kk, vv
  153.  
  154.         n, kk, vv: as Note Off (see above)
  155.  
  156.  
  157. D0 to DF: Monophonic Channel Pressure or After Touch (MCP)                                       
  158.  
  159. Indicates pressure has been applied to the keyboard ‚Äî it‚Äôs often used in preference to Polyphonic Key Pressure (see above) and isn‚Äôt specific to any particular key being pressed.
  160.  
  161. Dn, vv
  162.  
  163.         n, vv: as Note Off (see above) 
  164.  
  165.  
  166.  
  167. Channel Mode Messages
  168. wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
  169.  
  170. ¬† 
  171.  
  172.  
  173.                                                               Channel Mode Messages tell an device 
  174.                                                               how to respond to Voice Messages ‚Äî 
  175.                                                               they‚Äôre sent over the instrument‚Äôs
  176.                                                               Basic Channel.
  177.                                                              
  178.  
  179.  
  180.  
  181.  
  182.  
  183. Mode messages control parameters that are universal for a device ‚Äî such as volume. Although most devices only use one Basic Channel it‚Äôs possible to use two or more ‚Äî allowing a single instrument to behave as if it were several independent synthesisers.
  184.  
  185.  
  186. The messages are:-
  187.  
  188.  
  189. B0 to BF: Control Change with running status (CCH)                                                     
  190.  
  191. Indicates that a control or switch has moved. Two pairs of data bytes specify which continuous controller or switch has been adjusted and its setting.
  192.  
  193. The 32 14-bit controllers include breath control (1), foot pedal (4), portamento time control (5), data entry slider (6) and main volume (7). Earlier instruments often confuse  controllers 4 and 7! All values are encoded using a logarithmic scale and split into a most and least significant byte (MSB and LSB). These controllers can be used in a non-standard way to operate an automated sound mixer ‚Äî the maximum capacity is 64 7-bit faders (with 0.8 dB resolution) or 32 14-bit faders, plus switches.
  194.  
  195. Four 7-bit controllers are used for sustain, portamento, sostenuto and soft pedals switches. There are a further 19 7-bit controllers, data increment and decrement buttons, two 14-bit parameter controls, a controllers reset switch, a local control switch and switches to set the instrument‚Äôs Mode and to send an All Notes Off command.
  196.  
  197. Channel Modes determine how the instrument responds to channel messages. Poly Mode On deselects Mono Mode and vice versa.
  198.  
  199.     For a receiver with a Basic Channel of N the responses are:
  200.  
  201.  
  202.       Mode  Omni           Messages received from                             
  203.  
  204.          1        On       Poly        All channels play voices polyphonically
  205.       2        On       Mono        All channels play one monophonic voice
  206.       3        Off      Poly        Channel N plays voices polyphonically
  207.          4        Off      Mono        Channel N through to N+M-1 are assigned 
  208.                            monophonically to voices 1 to M
  209.  
  210.  
  211.     For a transmitter with a Basic Channel of N:
  212.  
  213.  
  214.       Mode  Omni           Messages Sent                                       
  215.  
  216.          1        On       Poly     All voices to channel N
  217.          2        On       Mono        Mono voice to channel N
  218.          3        Off      Poly        All voices to channel N
  219.          4        Off      Mono        Single voices 1 to M to channels N through to N+M-1
  220.  
  221.  
  222. If a receiver can‚Äôt accept a mode it may ignore the message or switch to Mode 1. Instruments should default to Mode 1 at startup ‚Äî but most don‚Äôt!
  223.  
  224. Messages are in the form:-
  225.  
  226. Bn, cc, vv, cc, vv, - - -
  227.  
  228.         n = MIDI channel number
  229.         cc = controller number
  230.                 (followed by vv as a controller value unless shown otherwise):
  231.                         00 to 1F = MSB for 14 bit controllers 00 to 1F (0 to 31):
  232.                                                         The following are assigned:
  233.                                                         01 = breath controller
  234.                                                         04 = foot controller
  235.                                                         05 = portamento time
  236.                                                         06 = data entry slider
  237.                                                         07 = main volume
  238.                        20 to 3F = LSB for above controllers
  239.                        40 to 5F = 7-bit controllers 40 to 5F (0 to 31)
  240.                                                 The following are assigned as switches
  241.                                                 (vv = 00 to 3F for ‚Äòoff‚Äô, 40 to 7F for ‚Äòon‚Äô):
  242.                                                         40 = sustain pedal
  243.                                                         41 = portamento pedal
  244.                                                         42 = sostenuto pedal
  245.                                                         43 = 'soft' pedal
  246.                        60 = data increment button (vv = 7F)
  247.                        61 = data decrement button (vv = 7F)
  248.                        62, 63 = manufacturer-specific parameter controller LSB, MSB
  249.                        64, 65 = universal parameter controller LSB, MSB
  250.                        79 = reset all controllers (vv = 7F)
  251.                        7A = Local Control (vv = 00 for ‚Äòoff‚Äô, 7F for ‚Äòon‚Äô)
  252.                        7B = All Notes Off (vv = 00)
  253.                        7C = Omni Mode Off/All Notes Off (vv = 00)
  254.                        7D = Omni Mode On/All Notes Off (vv = 00)
  255.                        7E = Mono Mode On/All Notes Off
  256.                                                         vv = M   M channels used starting with the Basic Channel               
  257.                                                         vv = 0   all available channels to be used
  258.                        7F = Poly Mode On/All Notes Off (vv = 00)
  259.  
  260.  
  261.  
  262. C0 to CF: Program Change (PCH)                                                                               
  263.  
  264. Indicates that a voice or patch has been selected.
  265.  
  266. Cn, pp
  267.  
  268.         n = MIDI channel number
  269.         pp = program number
  270.  
  271.  
  272. E0 to EF: Pitch Wheel (PWL)                                                                                     
  273.  
  274. Indicates the pitch bend controller has moved. Two data bytes are used for the 14-bit data. Sensitivity to pitch bend is determined within the receiver.
  275.  
  276. En, vv, VV
  277.  
  278.         n = MIDI channel
  279.         vv, VV = pitch bend LSB, MSB
  280.  
  281.  
  282.  
  283.  
  284. System Common Messages
  285. qqqqqqqqqqqqqqqqqqqq
  286.  
  287.  
  288.  
  289.  
  290.  
  291.                                                                  System Common Messages are sent and 
  292.                                                                  received irrespective of MIDI channels.
  293.  
  294.                                                                  They‚Äôre designed to be received by all  
  295.                                                                  devices in a MIDI system ‚Äî assuming 
  296.                                                                  they can make use of them!
  297.  
  298.  
  299.  
  300.  
  301. The System Common Messages are:-
  302.  
  303. F1: MIDI Timecode Quarter Frame Message (MTC)                                                           
  304.  
  305. At the start of a run of timecode a Full MIDI Timecode Message must be sent (see Real Time System Exclusive messages below). The MTC Quarter Frame message only indicates the current position within a run of timecode.
  306.  
  307. 100 messages are sent per second, using only 7.5% of MIDI‚Äôs total bandwidth. Timecode is contained in a data byte spread over 8 messages ‚Äî hence a full update only occurs on every second frame of timecode.
  308.  
  309. F1, nd
  310.  
  311.         n = timecode message type
  312.                             00 = frames LS nibble
  313.                             01 = frames MS nibble
  314.                             02 = seconds LS nibble
  315.                             03 = seconds MS nibble
  316.                             04 = minutes LS nibble
  317.                             05 = minutes MS nibble
  318.                             06 = hours LS nibble
  319.                             07 = hours MS nibble
  320.         d = timecode nibbles assembled by the receiver into data bits.
  321.                      For the hours count:- xyyzzzzz
  322.                             yy = SMPTE timecode type:
  323.                                                         0 = 24 frm/s
  324.                                                         1 = 25 frm/s
  325.                                                         2 = 30 frm/s drop-frame
  326.                                                         3 = 30 frm/s non drop-frame
  327.                             zzzzz = hours count (0 to 23)
  328.  
  329.  
  330. F2: Song Position Pointer (SPP)                                                                                 
  331.  
  332. A count of MIDI beats elapsed as a sequencer plays its song. One beat equals 6 MIDI clocks.
  333.  
  334. F2, pp, PP
  335.  
  336.         pp, PP = pointer LSB, MSB
  337.  
  338.  
  339. F3: Song Change (SCH)                                                                                            
  340.  
  341. Selects the song to be played by a sequencer following a Real Time Start message.
  342.  
  343. F3, ss
  344.  
  345.         ss = song number
  346.  
  347.  
  348. F6: Tuning Request (TRQ)                                                                                         
  349.  
  350. This is rarely used ‚Äî it doesn‚Äôt use any data bytes.
  351.  
  352.  
  353. F7: End of System Exclusive (EOX)                                                                             
  354.  
  355. Indicates that System Exclusive data has ended (see below). No data bytes are used.
  356.  
  357.  
  358.  
  359.  
  360. Real Time Messages
  361. qqqqqqqqqqqqqqq
  362.  
  363.  
  364. ¬†                                                                                                                                                                                                                                                              Real Time Messages are sent and 
  365.                                                                   received irrespective of MIDI channels 
  366.                                                                   and have the highest timing priority.
  367.  
  368.                                                                   They can be interposed between any 
  369.                                                                   bytes, perhaps separating status bytes 
  370.                                                                   from their data, or even placed in the 
  371.                                                                   middle of running status information. 
  372.  
  373.                                                                   Real Time Messages don‚Äôt use data 
  374.                                                                   bytes.
  375.                                                                 
  376.  
  377. The Real Time messages are:-
  378.  
  379.  
  380. F8: Timing Clock                                                                                                      
  381.  
  382. These ‚Äòpulses‚Äô drive a sequencer at a rate of six clocks per MIDI beat. Each device uses a Song Position Pointer register to count these beats during a sequence.
  383.  
  384. There are 16 beats or 96 clocks per whole note. The relationship between note lengths, beats and clocks is given below:-
  385.  
  386.  
  387.        Note                               MIDI beats                MIDI clocks     
  388.  
  389.        Semibreve (whole note)                16                            96
  390.        Minim (half note)                      8                            48
  391.        Crotchet (quarter note)                4                            24
  392.        Quaver (eighth note)                   2                            12
  393.        Semiquaver (sixteenth note)         1                             6
  394.  
  395.  
  396.  
  397. FA: Sequence Start (STR)
  398. FB: Sequence Continue (CNT)
  399. FC: Sequence Stop (STP)                                                                                          
  400.  
  401. Instructions to a sequencer.
  402.  
  403.  
  404. FE: Active Sensing (SNS)                                                                                         
  405.  
  406. This feature is optional ‚Äî it silences an instrument if its MIDI cables are accidentally disconnected. Any device that receives this signal will expect another every 300 milliseconds. If they fail to appear the receiver then defaults to non-sensing mode and turns off all voices.
  407.  
  408.  
  409. FF: System Reset (RST)                                                                                             
  410.  
  411. This restores all instruments to normal. It‚Äôs implemented by the user ‚Äî not automatically at startup.
  412.  
  413.  
  414.  
  415.  
  416. System Exclusive Messages
  417. qqqqqqqqqqqqqqqqqqqqq
  418.  
  419.  
  420.  ¬†                                                                            Most System Exclusive Messages 
  421.                                                                               are specific to particular 
  422.                                                                               equipment ‚Äî the manufacturer 
  423.                                                                               determines the rules. They can 
  424.                                                                               contain a manufacturer‚Äôs 
  425.                                                                               identification number (ID) to 
  426.                                                                               match the appropriate protocol. 
  427.                                                                               They are often used for voice 
  428.                                                                               editing or remote control of 
  429.                                                                               synthesisers.
  430.  
  431.  
  432. System Exclusive information must be aimed at particular piece of equipment ‚Äî this allows two identical devices to share the same MIDI circuit. Hence every instrument is given unique device ID ‚Äî this often corresponds to the basic channel number.
  433.  
  434. Two special IDs are used for Universal System Exclusive messages that are available to any device ‚Äî irrespective of the manufacturer!
  435.  
  436. The System Exclusive messages are:-
  437.  
  438.  
  439. F0: Start of Exclusive (SOX) ‚Äî Manufacturers System Exclusive                                      
  440.  
  441. This contains a manufacturer‚Äôs ID code.
  442.  
  443. F0, ii, xx, - - - xx, F7
  444.  
  445.         ii = manufacturer‚Äôs ID
  446.                             The following are examples:
  447.                         01 = Sequential Circuits
  448.                             04 = Moog
  449.                             10 = Oberheim
  450.                             17 = Linn
  451.                             18 = Emu
  452.                             41 = Roland
  453.                             42 = Korg
  454.                             43 = Yamaha
  455.                             44 = Casio
  456.                             45 = Akai
  457.         xx = Sysex data determined by the above manufacturer
  458.         F7 = End Of System Exclusive (EOX)
  459.  
  460.  
  461. F0: Start of Exclusive (SOX) ‚Äî Non Real-Time Universal System Exclusive                        
  462.  
  463. These special messages are directed to specific devices using the device ID.
  464.  
  465.  
  466. ‚Ä¢ Set Up Message
  467.  
  468. Used to send instructions to a device that uses MIDI timecode ‚Äî such as a multi-track recorder or sequencer.
  469.  
  470. F0, 7E, nn, 04, jj, hh, mm, ss, ff, gg, xx, yy, aa, - - aa, F7
  471.  
  472.         7E = ID for Non Real Time Universal
  473.         nn = device ID
  474.         04 = sub ID 1 for MTC
  475.         jj = sub ID 2
  476.                             00 = Special
  477.                             01 = Punch In Point (record mode enable)
  478.                             02 = Punch Out Point (record mode disable)
  479.                             03 = Delete Punch In Point from cue list
  480.                             04 = Delete Punch Out Point from cue list
  481.                             05 = Event Start Point
  482.                             06 = Event Stop Point
  483.                             07 = Event Start Point with additional info
  484.                             08 = Event Stop Point with additional info
  485.                             09 = Delete Event Start Point from cue list
  486.                             0A = Delete Event Stop Point from cue list
  487.                             0B = Cue Point
  488.                             0C = Cue Point with additional info
  489.                             0D = Delete Cue Point
  490.                             0E = Event Name In Additional Data
  491.         hh = hours and SMPTE type containing  bits organised as: 0yyzzzzz
  492.                             yy = SMPTE timecode type
  493.                                                         00 = 24 frm/s
  494.                                                         01 = 25 frm/s
  495.                                                         02 = 30 frm/s drop-frame
  496.                                                         03 = 30 frm/s non drop-frame
  497.                             zzzzz = hours (0 to 23)
  498.         mm = minutes
  499.         ss = seconds
  500.         ff = frames
  501.         gg = fractional frames (0 to 99)
  502.         LL = 14-bit event number LSB. Set to zero if jj=00 (Special Mode)
  503.         MM = 14-bit event number MSB
  504.                      Set to global command if jj=00 (Special Mode):
  505.                             00 = Timecode Offset
  506.                             01 = Enable Event List
  507.                             02 = Disable Event List
  508.                             03 = Clear
  509.                             04 = System Stop
  510.                             05 = Event List Request (sent by master devices to a MTC peripheral)
  511.         aa = additional info
  512.                             MIDI data is sent as nibbles with LS nibble first.
  513.                             For example a Note On of 93, 48, 7F is sent as 03, 09, 08, 04, 0F, 07.
  514.                             If jj = 0E (Event Name in Additional Data) then ASCII data is sent
  515.                         in the same form ‚Äî both CR and LF codes must be sent for a new line
  516.         F7 = End Of System Exclusive (EOX)
  517.  
  518.  
  519. The following Universal System Exclusive messages are concerned with the transfer of audio samples via MIDI:-
  520.  
  521.  
  522. ‚Ä¢ Sample Dump Request
  523.  
  524. Used prior to the transfer of sound sample data between a controlling device and sampler. For best results MIDI circuits should be connected in both directions to create a closed loop with handshaking. After 2 seconds of waiting for any handshake signals the system defaults to open loop operation.
  525.  
  526. F0, 7E, nn, 03, ss, SS, F7
  527.  
  528.         7E = ID for Non Real Time Universal
  529.         nn = device ID
  530.         03 = sub ID 1 for Sample Dump Request
  531.         ss, SS = stored sample number LSB, MSB
  532.         F7 = End of System Exclusive (EOX)
  533.  
  534.  
  535. ‚Ä¢ Dump Header
  536.  
  537. This is transmitted before sending a sound sample. Where two or three data bytes are used the LSB is sent first.
  538.  
  539. F0, 7E, nn, 01, ss, SS, bb, pp, pp, PP, mm, mm, MM, xx, xx, XX, yy, yy, YY, tt, F7
  540.  
  541.         7E = ID for Non Real Time Universal
  542.         nn = device ID
  543.         01 = sub ID 1 for Dump Header
  544.         ss, SS = stored sample number
  545.         bb = number of bits (8 to 28) in each sample 
  546.         pp, pp, PP = sample period in nanoseconds
  547.         mm, mm, MM = sample length measured in number of sample words
  548.         xx, xx, XX = sustain loop start point in words from start of the sample
  549.         yy, yy, YY = sustain loop end in words from end of the sample
  550.         tt = loop type (00 for ‚Äòforward‚Äô, 01 for ‚Äòforward/backward‚Äô)
  551.         F7 = End of System Exclusive (EOX)
  552.  
  553.  
  554. ‚Ä¢ Sample Dump Handshake
  555.  
  556. This indicates if a device can accept the data as defined in the Sample Dump Header.
  557.  
  558. F0, 7E, nn, mm, pp, F7
  559.  
  560.         7E = ID for Non Real Time Universal
  561.         nn = device ID
  562.         mm = Handshake Mode:
  563.                             7C = Wait ‚Äî further handshake message to follow
  564.                             7D = Cancel ‚Äî device can‚Äôt accept the data
  565.                             7E = Not Acknowledged (NAK) ‚Äî device awaiting retransmission of a 
  566.                                                                          faulty packet
  567.                             7F = Acknowledged (ACK) ‚Äî packet received
  568.         pp = packet number
  569.         F7 = End of System Exclusive (EOX)
  570.  
  571.  
  572. ‚Ä¢ Sample Dump Packet
  573.  
  574. This is used for the process of dumping a sample. The time taken for transfer may be ten times the sample‚Äôs duration ‚Äî or longer.
  575.  
  576. F0, 7E, nn, 02, pp, dd, dd, -- dd, cc, F7
  577.  
  578.         7E = ID for Non Real Time Universal
  579.         nn = device ID
  580.         02 = sub ID 1 for Sample Dump Packet
  581.         pp = packet number, restarting from zero as necessary
  582.         dd = data packets each containing 120 bytes
  583.         cc = checksum of all data not including any status bytes.
  584.         F7 = End of Exclusive (EOX)
  585.  
  586.  
  587. F0: Start of Exclusive (SOX) ‚Äî Real-Time Universal System Exclusive                               
  588.  
  589. These messages contain time-related information for a device with a matching device ID.
  590.  
  591.  
  592. ‚Ä¢ Full MIDI Timecode Message
  593.  
  594. This message should be sent at the beginning of a run of timecode.
  595.  
  596. F0, 7F, nn, 01, 01, hh, mm, ss, ff, F7
  597.  
  598.         7F = Real Time Universal
  599.         nn = device ID  (7F to select entire system)
  600.         01 = sub ID 1 for MIDI Timecode
  601.         01 = sub ID 2 for Full Timecode message
  602.         hh, mm, ss, ff = timecode as in MIDI Cueing Setup Message (see above)
  603.         F7 = End of System Exclusive (EOX)
  604.  
  605.  
  606. ‚Ä¢ User Bits
  607.  
  608. These bits are usually fixed throughout a run of timecode ‚Äî they‚Äôre the same as the User Bits in SMPTE timecode.
  609.  
  610. F0, 7F, nn, 01, 02, 0W, 0w, 0X, 0x, 0Y, 0y, 0Z, 0z, 0g, F7
  611.  
  612.         7F = ID for Real Time Universal
  613.         nn = device ID  (7F to select entire system)
  614.         01 = sub ID 1 for MIDI Timecode
  615.         02 = sub ID 2 for User Bits
  616.         W, w = User Byte 1 MS nibble, LS nibble
  617.         Y, y = User Byte 2 MS nibble, LS nibble  ‚Äî and so on
  618.            g = SMPTE Binary Group Flag Bits (2 bits only)
  619.         F7 = End of System Exclusive (EOX)
  620.  
  621.  
  622.  
  623. ¬©Ray White. All Rights Reserved 1997